Advances in computer processing power and network communications have made information from a wide variety of sources available to users on computer networks. Computer networking allows network computer users to share information, software applications and hardware devices and internetworking enables a set of physical networks to be connected into a single network such as the Internet. Today, computers connected to the Internet have almost instant access to information stored in relatively distant regions. Moreover, computers connected to networks other than the Internet also have access to information stored on those networks. The World Wide Web (Web), a hypermedia system used on the Internet, enables hypertext linking, whereby documents automatically reference or link other documents located on connected computer networks around the world. Thus, users connected to the Internet have almost instant access to information stored in relatively distant regions.
A page of information on the Web may include references to other Web pages and may include a broad range of multimedia data including textual, graphical, audio, and a animation information. Currently, Internet users retrieve information from the Internet, through the Web, by ‘visiting’ a web site on a computer that is connected to the Internet.
The web site is, in general terms, a server application that displays information stored on a network server computer. The web site accepts connections from client programs, such as Internet browser applications. Browser applications, such as Microsoft Internet Explorer™ or Netscape Navigator™, allow Internet users to access information displayed on the web site. Most browser applications display information on computer screens and permit a user to navigate through the Web using a mouse. Like other network applications, Web browsing uses the client-server paradigm. When given the Uniform Resource Locator (URL) of a document, the browser application becomes a client and it contacts a server application specified in the URL to request the document. After receiving the document from the server application, the browser application displays the document for the user. When the browser application interacts with the server application, the two applications follow the HyperText Transport Protocol (HTTP). HTTP allows the browser application to request a specific article, which the server application then returns. To ensure that browser applications and server applications inter-operate unambiguously, HTTP defines the exact format for requests sent from the browser application to the server application as well as the format of replies that the server application returns.
As the number of physical networks connected to the Internet continues to grow, so too will the number of web sites that are accessible to Internet users and so too will commercial and financial activity on the Internet.
In recent years online electronic trading systems have emerged as an efficient means to trade financial securities, commodities and other assets. These “virtual” markets attempt to amass the orders of many buyers and sellers to generate continuous liquidity.
Despite the vast amount of resources that have been dedicated to the development of online electronic trading systems, the existing implementations all suffer from various design flaws. For example, in most systems trading is only permitted in predefined, inflexible markets. Thus, new, custom-designed financial derivatives and other assets with complex structures cannot be accommodated without making modifications to the trading system software code itself. Another weakness in many existing systems is the fact that order matching is periodic, rather than continuous. Since orders are only matched at specified intervals, traders are at risk to adverse market movements between matching cycles, a span of more than one hour in some systems.
In most existing systems, the order matching process requires some form of third-party human intervention between the buyer and seller. Therefore, it is impossible to guarantee the anonymity of the buyer and seller. This need for human intervention also makes the process inherently unscalable. In a similar vein, order size cannot be effectively hidden from other users of the present systems, making it difficult or impossible to place very large buy or sell orders without causing adverse price movements.
A limitation common to all existing systems is that orders placed in two or more separate markets are isolated from each other. While this model of operation is satisfactory for the processing of unrelated individual orders, it does not support more sophisticated trading strategies that require the simultaneous execution of two or more related orders in different markets. Since individual markets are not linked in any transactional way, it is impossible to guarantee atomic execution of the strategy's underlying orders. If a user attempts to execute a strategy by executing orders individually he risks a partial execution scenario. For example, consider the case in which the user determines that the current prices and sizes of existing buy and sell orders in the markets that make up a given strategy meet the strategy's profit, price and size relationship constraints. The user begins executing the individual orders in their respective markets. However, before the user can complete execution of all the orders that make up the strategy, the best available price in one or more of the remaining markets changes adversely, resulting in the reduction or elimination of the strategy's profitability.
Clearly, the current state of the art in online electronic trading systems leaves much room for improvement. What is needed, therefore, is a system that allows ad hoc creation of new assets and markets, that continuously, automatically and anonymously matches buy and sell orders in these markets, and that enables guaranteed, atomic execution of trading strategies that span multiple markets and that have arbitrarily complex inter-market order price and size relationship constraints.